clear
use "./jip2018_3.dta"
* Base data obtained from JIP Database https://www.rieti.go.jp/en/database/jip.html

gen rc = 1000*row + col
xtset rc year

* lnSHARE lnPRICE
gen lnsh = ln(share)
gen lnpr = ln(price)

* DUMMY VAR
tabulate year, generate(d) // create year dummy vars

* IV
gen lntfp1 = ln(tfp1)
gen lntfp2 = ln(tfp2)
gen lntfp3 = ln(tfp3)

* IV REGRESSION
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 1, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 2, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp3) if col == 3, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp3) if col == 4, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 5, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 6, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 7, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 8, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 9, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 10, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 11, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 12, fe endog(lnpr) //ols
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 13, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 14, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 15, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 lntfp2 lntfp3) if col == 16, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 lntfp2) if col == 17, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 lntfp2) if col == 18, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 19, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 20, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 21, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 22, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 23, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 24, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 25, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 26, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 27, fe endog(lnpr) // ols
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 28, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 lntfp3) if col == 29, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 lntfp3) if col == 30, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 lntfp3) if col == 31, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 lntfp3) if col == 32, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp1) if col == 33, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp1) if col == 34, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp1) if col == 35, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp1) if col == 36, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 lntfp1) if col == 37, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp2) if col == 38, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 39, fe endog(lnpr) //s
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 40, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 41, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 42, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 43, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 44, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 45, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 46, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 47, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 48, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 49, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 50, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 51, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 52, fe endog(lnpr) //s
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 53, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 54, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 55, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 56, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 57, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp3) if col == 58, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 59, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 60, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 61, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 62, fe endog(lnpr) //ols
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp1) if col == 63, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp1) if col == 64, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 65, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp1) if col == 66, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 67, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp1) if col == 68, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp1) if col == 69, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 70, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 71, fe endog(lnpr) //ols
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 72, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp2) if col == 73, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 74, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp2) if col == 75, fe endog(lnpr) // s
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp3) if col == 76, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp3) if col == 77, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp3) if col == 78, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp3) if col == 79, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp3) if col == 80, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp1) if col == 81, fe endog(lnpr) //ols
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp3) if col == 82, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = tfp2 tfp3) if col == 83, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp1) if col == 84, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp3 tfp3) if col == 85, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp2 tfp1) if col == 86, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 87, fe endog(lnpr)
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 88, fe endog(lnpr) // ols
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 89, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 90, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 91, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp2) if col == 92, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = tfp1 tfp2) if col == 93, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 94, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 95, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 96, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 97, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 98, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if col == 99, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = tfp3 lntfp3) if col == 100, fe endog(lnpr) 
xtivreg2 lnsh d2-d22 (lnpr = l.tfp1 f.tfp1) if col == 106, fe endog(lnpr) 

* DELTA
nlcom 1-_b[lnpr]

* REGRESSION (without IV)
foreach i of num 1/100{
xtreg lnsh d2-d22 lnpr if col == `i', fe
}
xtreg lnsh d2-d22 lnpr if col == 106, fe

* REG WINDOW
foreach t of num 1995/2010{
xtivreg2 lnsh d2-d22 (lnpr = lntfp1 tfp3) if ///
col == 1 & tt <= `t'+5 & tt >= `t', fe endog(lnpr)
nlcom 1-_b[lnpr]
}


/*
**************************** OUT LOG ***************************
log using ivreg101.log
<run>
log close

*UNIX MAC 
grep "lnpr |" ivreg101.log > results.out
****************************************************************
*****************************************************************
nlcom ///
(F2015:exp(-_b[d22]/_b[lnpr])) ///
(F2014:exp(-_b[d21]/_b[lnpr])) ///
(F2013:exp(-_b[d20]/_b[lnpr])) ///
(F2012:exp(-_b[d19]/_b[lnpr])) ///
(F2011:exp(-_b[d18]/_b[lnpr])) ///
(F2010:exp(-_b[d17]/_b[lnpr])) ///
(F2009:exp(-_b[d16]/_b[lnpr])) ///
(F2008:exp(-_b[d15]/_b[lnpr])) ///
(F2007:exp(-_b[d14]/_b[lnpr])) ///
(F2006:exp(-_b[d13]/_b[lnpr])) ///
(F2005:exp(-_b[d12]/_b[lnpr])) ///
(F2004:exp(-_b[d11]/_b[lnpr])) ///
(F2003:exp(-_b[d10]/_b[lnpr])) ///
(F2002:exp(-_b[d9]/_b[lnpr])) ///
(F2001:exp(-_b[d8]/_b[lnpr])) ///
(F2000:exp(-_b[d7]/_b[lnpr])) ///
(F1999:exp(-_b[d6]/_b[lnpr])) ///
(F1998:exp(-_b[d5]/_b[lnpr])) ///
(F1997:exp(-_b[d4]/_b[lnpr])) ///
(F1996:exp(-_b[d3]/_b[lnpr])) ///
(F1995:exp(-_b[d2]/_b[lnpr])) ///
(F1994:exp(-(0)/_b[lnpr])) 

